
/**
 * let i 在每次循环时会创建一个新的块级作用域，每个 setTimeout 回调捕获的是当前迭代的 i 值（0~4）
 * 输出结果0 1 2 3 4
*/
for(let i = 0;i<5;i++){
    setTimeout(()=>{
        console.log(i)
    },0)
}

/**
 * 因 var 无块级作用域，回调共享同一个 i
 * 输出结果：5 5 5 5 5
*/
for(var i = 0;i<5;i++){
    setTimeout(()=>{
        console.log(i)
    },0)
}